package ti.me.weather

import android.os.Bundle
import android.util.Log
import android.widget.ArrayAdapter
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import ti.me.weather.weather.Forecast
import ti.me.weather.weather.Weather

class MainActivity2 : AppCompatActivity() {
    val basicURL = "http://t.weather.sojson.com/api/weather/city/"
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main2)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }

        val cityCode = intent.getStringExtra("city_code")
        val queue = Volley.newRequestQueue(this)
        val stringRequest = StringRequest(basicURL + cityCode, {
            val gson = Gson()
            val WeatherType =  object :TypeToken<Weather>() {}.type
            val weather = gson.fromJson<Weather>(it, WeatherType)

            val textView_city = findViewById<android.widget.TextView>(R.id.textView_city)
            val textView_province = findViewById<android.widget.TextView>(R.id.textView_province)
            val textView_wendu = findViewById<android.widget.TextView>(R.id.textView_wendu)
            val textView_shidu = findViewById<android.widget.TextView>(R.id.textView_shidu)
            val imageView = findViewById<android.widget.ImageView>(R.id.imageView)
            textView_city.text = weather.cityInfo.city
            textView_province.text = weather.cityInfo.parent
            textView_wendu.text = "温度：${weather.data.wendu}"
            textView_shidu.text = "湿度：${weather.data.shidu}"

            val firstDay = weather.data.forecast.first()
            when (firstDay.type){
                "晴" -> imageView.setImageResource(R.drawable.sun)
                "阴" -> imageView.setImageResource(R.drawable.cloud)
                "多云" -> imageView.setImageResource(R.drawable.mcloud)
                "阵雨" -> imageView.setImageResource(R.drawable.rain)
                else -> imageView.setImageResource(R.drawable.thunder)
            }

            val adapter = ArrayAdapter<Forecast>(this, android.R.layout.simple_list_item_1, weather.data.forecast)
            val listView = findViewById<android.widget.ListView>(R.id.listView)
            listView.adapter = adapter
            Log.d("MainActivity2", "${weather.cityInfo.city} ${weather.cityInfo.parent}")
        }, {
            Log.d("MainActivity2", "$it")
        })
        queue.add(stringRequest)
    }
}